/**
 * 
 * [00:00.000] 作曲 : 许嵩
[00:01.000] 作词 : 许嵩
[00:22.240]天空好想下雨
[00:24.380]我好想住你隔壁
[00:26.810]傻站在你家楼下
[00:29.500]抬起头数乌云
[00:31.160]如果场景里出现一架钢琴
[00:33.640]我会唱歌给你听
[00:35.900]哪怕好多盆水往下淋
[00:41.060]夏天快要过去
[00:43.340]请你少买冰淇淋
[00:45.680]天凉就别穿短裙
[00:47.830]别再那么淘气
[00:50.060]如果有时不那么开心
[00:52.470]我愿意将格洛米借给你
[00:55.020]你其实明白我心意
[00:58.290]为你唱这首歌没有什么风格
[01:02.978]它仅仅代表着我想给你快乐
[01:07.840]为你解冻冰河为你做一只扑火的飞蛾
[01:12.998]没有什么事情是不值得
[01:17.489]为你唱这首歌没有什么风格
[01:21.998]它仅仅代表着我希望你快乐
[01:26.688]为你辗转反侧为你放弃世界有何不可
[01:32.328]夏末秋凉里带一点温热有换季的颜色
[01:41.040]
[01:57.908]天空好想下雨
[01:59.378]我好想住你隔壁
[02:02.298]傻站在你家楼下
[02:03.846]抬起头数乌云
[02:06.185]如果场景里出现一架钢琴
[02:08.876]我会唱歌给你听
[02:10.975]哪怕好多盆水往下淋
[02:15.326]夏天快要过去
[02:18.346]请你少买冰淇淋
[02:21.485]天凉就别穿短裙
[02:22.915]别再那么淘气
[02:25.185]如果有时不那么开心
[02:27.626]我愿意将格洛米借给你
[02:30.016]你其实明白我心意
[02:33.327]为你唱这首歌没有什么风格
[02:37.976]它仅仅代表着我想给你快乐
[02:42.836]为你解冻冰河为你做一只扑火的飞蛾
[02:48.407]没有什么事情是不值得
[02:52.416]为你唱这首歌没有什么风格
[02:57.077]它仅仅代表着我希望你快乐
[03:01.995]为你辗转反侧为你放弃世界有何不可
[03:07.495]夏末秋凉里带一点温热
[03:11.536]
[03:20.925]为你解冻冰河为你做一只扑火的飞蛾
[03:26.616]没有什么事情是不值得
[03:30.526]为你唱这首歌没有什么风格
[03:35.196]它仅仅代表着我希望你快乐
[03:39.946]为你辗转反侧为你放弃世界有何不可
[03:45.645]夏末秋凉里带一点温热有换季的颜色 
 */
/**
 * 
 [00:00.000] 作曲 : 许嵩
 怎样将时间和内容分割并且作为对象进行保存
 1.字符串的截取
 2.使用正则
 */
const parseExp = /\[(\d{2}):(\d{2})\.(\d{2,3})\]/;

export function parseLyric(lyricString){
    //对歌词进行解析，然后返回一个解析好的数组
    const lineStrings = lyricString.split("\n");  //对歌词进行分割

    const lyrics = [];  //存放解析后歌词数组

    for (let line of lineStrings) {
        // 考虑最后一行最后一行是没有值的，但是还是会进行分割，所以进行判断
        if(line){
            // console.log(line);
            const result = parseExp.exec(line);
            // console.log(result);
            /**
             * 0: "[00:00.000]"
                1: "00"
                2: "00"
                3: "000"
             */
            //将时间转成毫秒或者秒
            if (!result) continue;  //为空的情况下，
            const time1 = result[1] * 60 * 1000;  //分钟对应的毫秒数，  字符串乘以数字会转成数字
            const time2 = result[2]*1000; //秒钟对应的毫秒数
            const time3 = result[3].length === 3 ? result[3]*1 : result[3]*10;  //有两种情况,两位数要乘以10才能转成毫秒
            const time = time1 + time2 +time3;
            // console.log(time);
            const content = line.replace(parseExp, "").trim();  //trim去掉字符串两边的空格
            // console.log(content);
            const lyricObj = {time, content};
            // console.log(lyricObj);
            lyrics.push(lyricObj);
        }
    }

    // console.log(lyrics);
    return lyrics;
}